
const http = require('http');
const fs = require('fs');
const path = require('path');

let server = http.createServer((req, res) => {
    // 目标：根据请求参数name的值获取到data.json中的对应的对象
    let { url, method } = req;
    // url--> /getHeroSkin?name=后裔
    console.log(url);
    if (method === 'GET' && url.startsWith('/getHeroSkin')) {
        // 解析出url后面的name参数的值
        // 获取到url字符串中的查询参数
        let [pathname, query] = url.split('?');

        // 通过urlSearchParams解析参数值
        let urlSearch = new URLSearchParams(query);
        // 通过get方法获取到查询字符串name参数的值
        let namevalue = urlSearch.get('name');
        // console.log(namevalue);

        // 读取data.json中的数据，通过name参数的值进行过滤处理
        let dataString = fs.readFileSync(path.join(__dirname, 'data.json'), 'utf8');
        // 将json字符串转换成数组
        let datas = JSON.parse(dataString);
        // 这是过滤后的数组
        let filterArr = datas.filter(item => item.name === namevalue);

        // 将过滤后的结果返回
        // end方法参数只能接收字符串和buffer，所以我们要将filterArr 转换成json字符串响应回去
        res.setHeader('content-type', 'application/json;charset=utf8');
        res.end(JSON.stringify(filterArr))

    } else {
        res.statusCode = 404;
        res.end('not found');
    }

})

server.listen(8004, () => {
    console.log('接口服务器已就绪，8004');
})